|
SAVEPOINT は、サブトランザクション (入れ子トランザクションとも呼ばれる) を実現するための、データベース言語 SQL のステートメントの1つである。トランザクション内の特定の地点に名前を付け、その地点以前に行った処理に影響を及ぼすことなく、その地点以降に行った処理をロールバックできる。1つのトランザクション内で複数の SAVEPOINT を作成することもできる。 SAVEPOINT は データベースを利用するアプリケーションで、複雑なエラー復帰処理を実現するのに有効である。複数のステートメントから成るトランザクションの途中でエラーが発生した場合、SAVEPOINT を利用すると、トランザクション全体をロールバックすることなく、エラーから復帰することができる。 SAVEPOINT の使用例を以下に示す。 SAVEPOINT ''name'' で地点に名前を付け、ROLLBACK TO SAVEPOINT ''name'' でロールバックする。設定した SAVEPOINT は RELEASE SAVEPOINT ''name'' またはトランザクションの終了時に解放される。BEGIN; INSERT INTO tbl VALUES (1); SAVEPOINT savepoint_example; INSERT INTO tbl VALUES (2); ROLLBACK TO SAVEPOINT savepoint_example; INSERT INTO tbl VALUES (3); COMMIT; -- 1 と 3 が挿入された状態になる。 SAVEPOINT は標準SQLにも採用されており、PostgreSQL, Oracle Database, Microsoft SQL Server, MySQL, DB2, SQLite (3.6.8 以降), Firebird, Informix Dynamic Server (11.50xC3 以降) など、多くの関係データベース管理システムがサポートしている。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「SAVEPOINT (SQL)」の詳細全文を読む スポンサード リンク
|